package com.pai4j.domain.vo.response;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 账号关系数据分析响应VO
 * 包含粉丝和关注的完整统计数据
 *
 * @author PAI4J
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AccountRelationAnalyticsVO implements Serializable {

    /**
     * 用户账号
     */
    private String account;

    /**
     * 统计时间范围（天数）
     */
    private Integer days;

    /**
     * 开始日期（格式：yyyy-MM-dd）
     */
    private String startDate;

    /**
     * 结束日期（格式：yyyy-MM-dd）
     */
    private String endDate;

    // ========== 粉丝数据 ==========

    /**
     * 当前总粉丝数
     */
    private Long totalFollowers;

    /**
     * 统计期间新增粉丝数
     */
    private Long newFollowers;

    /**
     * 统计期间取关数
     */
    private Long unfollows;

    /**
     * 粉丝净增长（新增-取关）
     */
    private Long followersNetGrowth;

    /**
     * 粉丝增长率（%）
     */
    private Double followersGrowthRate;

    /**
     * 粉丝日均新增
     */
    private Double avgDailyNewFollowers;

    /**
     * 粉丝趋势数据（按日统计）
     */
    private List<AccountRelationTrendVO> followersTrend;

    /**
     * 粉丝累计趋势数据
     */
    private List<AccountRelationTrendVO> followersCumulativeTrend;

    // ========== 关注数据 ==========

    /**
     * 当前总关注数
     */
    private Long totalFollowing;

    /**
     * 统计期间新增关注数
     */
    private Long newFollowing;

    /**
     * 关注增长率（%）
     */
    private Double followingGrowthRate;

    /**
     * 关注日均新增
     */
    private Double avgDailyNewFollowing;

    /**
     * 关注趋势数据（按日统计）
     */
    private List<AccountRelationTrendVO> followingTrend;

    // ========== 互动比率 ==========

    /**
     * 粉丝/关注比率
     */
    private Double followersToFollowingRatio;

    /**
     * 是否为优质账号（粉丝数>关注数）
     */
    private Boolean isQualityAccount;
}
